Ansible এ ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট হলো একটি সিস্টেম বা ক্লাউড প্ল্যাটফর্ম থেকে স্বয়ংক্রিয়ভাবে হোস্ট ইনফরমেশন সংগ্রহ করার উপায়। এটি static ইনভেন্টরির বিকল্প হিসেবে ব্যবহৃত হয়, যেখানে আপনি JSON বা YAML ফরম্যাটে স্বয়ংক্রিয়ভাবে হোস্টের তথ্য আনতে পারেন।
ansible.cfg
) ডাইনামিক ইনভেন্টরি স্ক্রিপ্টের পাথ উল্লেখ করতে হবে।নিচে একটি সহজ Python স্ক্রিপ্টের উদাহরণ দেয়া হলো, যা একটি ডাইনামিক ইনভেন্টরি প্রদান করবে:
dynamic_inventory.py:
#!/usr/bin/env python3
import json
def main():
inventory = {
"all": {
"hosts": ["192.168.1.1", "192.168.1.2"],
"vars": {
"ansible_user": "your_username",
"ansible_ssh_private_key_file": "/path/to/your/private/key"
}
},
"_meta": {
"hostvars": {}
}
}
print(json.dumps(inventory))
if __name__ == "__main__":
main()
inventory
ডিকশনারিতে আপনি বিভিন্ন হোস্টের তথ্য সংরক্ষণ করেন।"all"
নামে একটি গ্রুপ তৈরি করা হয়েছে যেখানে দুটি হোস্ট অন্তর্ভুক্ত আছে।_meta
সেকশনে হোস্টের ভ্যারিয়েবল সংরক্ষণ করা হয়।স্ক্রিপ্টটি রানযোগ্য করতে নিচের কমান্ডটি ব্যবহার করুন:
chmod +x dynamic_inventory.py
Ansible কনফিগারেশন ফাইলে (ansible.cfg
) ডাইনামিক ইনভেন্টরি স্ক্রিপ্টের পাথ উল্লেখ করতে হবে। উদাহরণ:
[defaults]
inventory = /path/to/dynamic_inventory.py
আপনি Ansible কমান্ড দিয়ে ইনভেন্টরি পরীক্ষা করতে পারেন:
ansible-inventory --list
এটি আপনার ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট থেকে প্রাপ্ত তথ্য প্রদর্শন করবে।
এখন আপনি ডাইনামিক ইনভেন্টরি ব্যবহার করে প্লেবুক রান করতে পারেন:
ansible-playbook -i /path/to/dynamic_inventory.py your_playbook.yml
AWS EC2 এর জন্য ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট ব্যবহারের একটি জনপ্রিয় উপায় হলো ec2.py
স্ক্রিপ্ট ব্যবহার করা। এটি AWS SDK ব্যবহার করে আপনার EC2 ইনস্টেন্সগুলোর তথ্য সংগ্রহ করে।
sudo apt-get install awscli
AWS EC2 এর জন্য ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট ডাউনলোড করতে পারেন:
curl https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/ec2.py -o ec2.py
chmod +x ec2.py
Ansible কনফিগারেশন ফাইলে AWS রিজিওন এবং ক্রেডেনশিয়াল সেট করতে হবে।
ডাইনামিক ইনভেন্টরি ব্যবহারে আপনার Ansible প্লেবুক এবং কাজগুলো আরো অটোমেটেড এবং কার্যকর হবে।
আরও দেখুন...